Data input devices, such as computer mice, touch screens, trackballs and the like, are well known for inputting data into and interfacing with personal computers and workstations. Such devices allow rapid relocation of a cursor on a monitor, and are useful in many text, database and graphical programs. A user controls the cursor, for example, by moving the mouse over a surface to move the cursor in a direction and over distance proportional to the movement of the mouse.
Computer mice come in both optical and mechanical versions. Mechanical mice typically use a rotating ball to detect motion, and a pair of shaft encoders in contact with the ball to produce a digital signal used by the computer to move the cursor. One problem with mechanical mice is that they are prone to inaccuracy and malfunction after sustained use due to dirt accumulation, etc. In addition, the movement and resultant wear of the mechanical elements, particularly the shaft encoders, necessarily limit the useful life of the device.
One solution to the above-discussed problems with mechanical mice has been the development of mice using an optical navigation system. These optical mice have become very popular because they provide a better pointing accuracy and are less susceptible to malfunction due to accumulation of dirt.
The dominant technology used today for optical mice relies on a light sources, such as a light emitting diode (LED), illuminating a surface at or near grazing incidence, a two-dimensional CMOS (complimentary metal-oxide-semiconductor) detector which captures the resultant images, and signal processing unit that correlates thousands of features or points in successive images to determine the direction, distance and speed the mouse has been moved. This technology provides high accuracy but suffers from a complex design and relatively high image processing requirements.
An alternative approach for measuring linear displacements uses an optical sensor having one-dimensional (1D) arrays of photosensitive elements, such as photodiodes, commonly referred to as a comb-array. The photodiodes within a 1D array may be directly wired in groups to enable analog, parallel processing of the received signals, thereby reducing the signal processing required and facilitating motion detection. For two-dimensional (2D) displacement measurements using this approach, multi-axes linear arrays have been proposed in which two or more 1D arrays are arranged along orthogonal axes.
In addition, many optical sensors having 1D arrays use a coherent light source, such as a laser, to illuminate a rough surface creating random interference pattern, called speckle. A speckle-based approach has several advantages, including efficient laser-based light generation and high contrast images even under illumination at normal incidence. Laser-based light generation has a high electrical-to-light conversion efficiency, and a high directionality that enables a small illumination footprint tailored to match a footprint of the array of photodiodes. Moreover, speckle patterns allow tracking operation on virtually any optically rough surfaces, affording broad surface coverage while maintaining the maximum contrast even under unfavorable imaging conditions, such as when the surface is “out-of-focus”.
Although a significant improvement over prior art optical mice, these speckle-based devices have not been wholly satisfactory for a number of reasons. In particular, mice using the above technique have not demonstrated the accuracy demanded in state-of-the-art mice today, which generally must have a path error of less than 0.5%.
One problem with prior art speckle-based mice arising from image analysis of the speckle pattern is sensitivity of an estimation scheme to statistical fluctuations. The speckle pattern can be described by a superposition of eigenfunctions of translation operators. By picking out one or more particular eigenfunctions of translation in the optical navigation system, the amount of translation along one or more directions can be determined by determining the complex phase of the eigenfunction relative to an earlier measurement. Since the speckle pattern is random, there is a finite probability that any given eigenfunction will have no energy. Thus, if motion is being detected in one direction by correlating output from a single 1D array against a fixed eigenfunction, at some point in time the signal is going to drop or fade below a usable level, if not fade out entirely.
Furthermore, even if the optical sensor were to use two orthogonal arrays to detect two components of image motion, when one array fades in signal strength that component of the motion will be lost; or worse the system may pick-up a spurious component that was generated by noise rather than by actual motion. Since motion of the optical mouse is detected by computing the change in phase of a complex vector rotating in the complex plane, if the signal falls below a predetermined noise level, the optical sensor will appear to sense spurious rotations with large changes in phase as the complex signal fluctuates about the origin. These in turn will be translated by the optical navigation system into large distance errors.
Accordingly, there is a need for an optical sensor for detecting motion in one or more dimensions and a signal processing method for using the same that is capable of sensing movement with an acceptable path error (e.g. of less than 1%) in any direction (i.e. on-axis as well as off-axis directions). It is desirable that the method work with both optical sensors having one or more 1D arrays, and with those having one or more 2D arrays.
The present invention provides a solution to these and other problems, and offers further advantages over conventional devices and methods of using the same.